7434ae6cd259b198fff9418efbf3199dced2ac24,spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainer.java,SimpleConsumer,callExecuteListener,#Message#number#,708

Before Change


			}
			catch (Exception e) {
				this.logger.error("Failed to invoke listener", e);
				rollback(deliveryTag, e);
			}
		}

After Change


				}
				else {
					this.logger.error("Failed to invoke listener", e);
					if (this.transactionManager != null) {
						if (this.transactionAttribute.rollbackOn(e)) {
							throw e; // encompassing transaction will handle the rollback.
						}
						else {
							if (this.logger.isDebugEnabled()) {
								this.logger.debug("No rollback for " + e);
							}
						}
					}
					else {
						rollback(deliveryTag, e);
						// no need to rethrow e - we'd ignore it anyway, not throw to client
					}
				}